const userService = require("../service/user.service")
const fs = require("fs")
const fileService = require("../service/file.service")
const { UPLOAD_PATH } = require("../config/path")

// 每个接口的映射，里面编写对应的逻辑
class UserController {
  // 创建 create 方法
  async create(ctx, next) {
    // 2.1.1 获取用户传递的账号密码
    const user = ctx.request.body

    // 2.1.3 将用户信息保存到数据库中，将对数据库的操作再进行抽取到 service/user.service
    const res = await userService.create(user)

    // 2.1.4 等待 sql语句 执行完成后，告知前端创建成功
    ctx.body = {
      message: "创建成功",
      data: res,
    }
  }

  async showAvatarImage(ctx, next) {
    // 1.获取用户的id
    const { userId } = ctx.params

    // 可以先在数据库查看是否有头像

    // 2.获取userId对应的头像信息
    const avatarInfo = await fileService.queryAvatarWithUserId(userId)

    // 3.读取头像所在的文件
    const { filename, mimetype } = avatarInfo
    ctx.type = mimetype
    ctx.body = fs.createReadStream(`${UPLOAD_PATH}/${filename}`)
  }
}
// 导出 UserController 这个类
module.exports = new UserController()
